/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.tamagochi.dao;

import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;
import java.util.StringTokenizer;

/**
 *  Esta classe representa o acesso a dados do objeto, representado a partir da 
 *  thread logica. 
 * 
 * @author Allan & Fabiana
 */
public class LogicaDao {

    private final String LOGICA = "config/logica.properties";
    
    public LogicaDao(){
    
    }
    
    /**
     * Metodo que verifica as propriedades logicas já pre-definida e as carrega, 
     * a imagem relativa sera apresentada como um .gif, onde as imagens serão 
     * formadas em sequencia a partir do uso de StringTokenizer por suas divisões 
     * em estados. Sera tratada ainda a forma em que o bicho virtual será alimentado,
     * dormindo ou brincando definidos em niveis de restrições que ja estão pré-
     * definidos no arquivo de propriedade.
     * 
     * @exception IOException
     * 
     * @see FileInputStream, Properties, Logica, StringTokenizer
     * 
     * @return Properties
     * 
     */
    public Properties carregaLogica(){
        
        Properties properties = new Properties();
        try {
            FileInputStream in = new FileInputStream(LOGICA);
            properties.load(in);
            in.close();
            
            StringTokenizer st = new StringTokenizer(properties.getProperty("dormir.tempo"),"#");
            
            Integer[] array = new Integer[st.countTokens()];
            int i = 0;
            
            while(st.hasMoreTokens()){
                array[i] = Integer.parseInt(st.nextToken());
                i++;
            }
            
            properties.put("dormir.tempo", array);
            
            st = new StringTokenizer(properties.getProperty("comer.tempo"),"#");
            
            array = new Integer[st.countTokens()];
            i = 0;
            
            while(st.hasMoreTokens()){
                array[i] = Integer.parseInt(st.nextToken());
                i++;
            }
            
            properties.put("comer.tempo", array);
            
             st = new StringTokenizer(properties.getProperty("brincar.tempo"),"#");
            
            array = new Integer[st.countTokens()];
            i = 0;
            
            while(st.hasMoreTokens()){
                array[i] = Integer.parseInt(st.nextToken());
                i++;
            }
            
            properties.put("brincar.tempo", array);
            
            st = new StringTokenizer(properties.getProperty("acoes.und"),"#");
         
            array = new Integer[st.countTokens()];
            
            i = 0;
            while(st.hasMoreTokens()){
                array[i] = Integer.parseInt(st.nextToken());
                i++;
            }
            
            properties.put("acoes.und",array);
            
        } catch (IOException ex) {
            ex.printStackTrace();
        }
        
        return properties;
    }
    
}

